The present invention relates to an object based computer system having semantic and presentation objects.
The terms useful in describing an object based system in a windows environment in accordance with the invention will first be described by way of overview.
An "object" is a combination of data and method code which is normally stored on disc. Objects intercommunicate by sending "messages", i.e., data, instructions, requests, etc., to one another, normally via object management software ("object manager"). If the object management software wishes to pass a message to an object, a process will be initiated which reads the data file for the object as part of its initialization. If an object is fully defined by its disc file and has no process associated with it, it is said to be "inactive". However, if an object has a process associated with it and is defined by the state of that process, then it is said to be "active". Generally, an object can be regarded as a discrete entity, e.g., it can be individually moved, copied, destroyed, etc. Thus, for the embodiment to be described, an object will have a unique identifier and it can be sent a message.
Objects can be "linked" to other objects so that information is passed back and forth by messages in a predetermined manner dependent on the nature of the link. The term "link" thus can have several different meanings in relation to an object based system. Furthermore, as described below, windows may also be objects ("representation objects") and have inter-object links with other windows. More will be said below about other inter-object links and "window links" in the specific description with reference to the attached drawings. However, for purposes of defining the present invention, the consequence of linking two objects will be that one is notified of changes made to the other during object processing. This "updating" link may be bidirectional.
In this specification, when there is a risk of confusion between window objects and other objects, the latter will be termed "semantic objects". Generally, however, the term "object" will mean "semantic object". However, an object as used herein can be thought of as comprising a semantic part (which defines the state of the object) and a presentation part (for presenting to a user the state of the object). Indeed, conceptually one can think of there being separate semantic objects and presentation objects. In addition, when using a windows user interface, there are windows for viewing objects and facilitating multi-tasking. In this specification, the presentation part or presentation object thus will be something which is utilized by a window and forms part of the window for the time in which the window is viewing the object in question and generally a distinction between the window and the presentation part or object will not be made. It will also be apparent to those skilled in the art how to provide multiple concurrent presentations of a semantic object in accordance with the invention.
Semantic objects have data stored in a particular storage domain. A storage domain may be regarded as closely equivalent to a storage medium such as a hard disc or floppy disc in the sense that all objects in a given storage domain are on-line together or are off-line together. Consequently, a single machine may support a plurality of storage domains.
It is also convenient to use a graphical user interface such as a windows interface since in such a system it is possible to open one or more windows on each object. The windows manage the display and provide input/output (lexical) interaction in the system. The use of multiple windows in conjunction with an object enables employment of the techniques of sharing (multiple windows to a common object) and distributed applications (a window is on one machine and the object is on another).
The present invention could be applied in a single computer having one or more storage domains but is primarily concerned with an object based system having a plurality of user stations. Such a system may be provided by a single central processing device having a plurality of user stations coupled to it, or it may be provided by a distributed processing network consisting of a number of independent processing units each having a respective station associated with it.
In existing systems, different users can, in concurrent sessions, alter data in the same data file (or object) such that each alteration and display is effectively carried out independently. However, a difficulty in such systems is that, despite careful record-locking procedures, the users do not have immediate cross references and updates for concurrent changes made by other users of the data file. The present invention seeks to overcome this difficulty by providing "representation" objects.